import { Inject, Injectable } from '@nestjs/common';
import { ClientProxy } from '@nestjs/microservices';
import { QueryFileDto } from './dto/query-file.dto';
import { UpdateFileDto } from './dto/update-file.dto';
@Injectable()
export class FilesService {
  constructor(
    @Inject('STORE_SERVICE') private client: ClientProxy,
  ) { }

  // 创建文件（直接存入数据库，不通过上传）
  async create(file) {
    file.content = file.buffer.toString('utf-8');
    console.log('file', file);
    return this.client.emit('createFile', file);
  }

  // 按条件分页查询
  findAll(query: QueryFileDto) {
   return this.client.send('findAllFiles', query);
  }

  // 获取types文件夹下的所有文件
  async getTypeFiles() {
    console.log('getTypeFiles');
    return this.client.send('getTypeFiles', {});
  }

  // 获取components文件夹下的所有文件
  async getComponentFiles() {
    return this.client.send('getComponentFiles', {});
  }

  // 按ID查询
  async findOne(id: number) {
    return this.client.send('findOneFile', id);
  }

  // 按文件名查询
  async findByFilename(filename: string) {
    return this.client.send('getFileByName', filename);
  }

  // 更新文件
  async update(id: number, updateFileDto: UpdateFileDto) {
    return this.client.send('updateFile', { id, updateFileDto });
  }

  // 删除文件
  async remove(id: number) {
    return this.client.send('removeFile', id);
  }
} 